home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Misc / emu / Wzonka-Lad.lha / Wzonka-Lad / src / test / sega_test.s < prev    next >
Text File  |  2004-01-02  |  4KB  |  190 lines

  1.  
  2. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  3. ;        wzonka-lad the emulator - sega pad tester
  4. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  5.  
  6.         incdir    "NDK_3.9:Include/include_i/"
  7.         include    "exec/memory.i"
  8.         include    "dos/dos.i"
  9.         include    "exec/exec_lib.i"
  10.         include    "dos/dos_lib.i"
  11.         include    "libraries/controlpad.i"
  12.  
  13. ExecBase     equ 4
  14.  
  15. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  16. ;        section    juures,code
  17. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  18.  
  19. gb_emu:        movem.l    d2-d7/a2-a6,-(SP)        ;stack!
  20.         move.l    ExecBase,exec_base        ;cache it locally.
  21.  
  22.         move.l    exec_base,a6
  23.         lea    disk_font_name,a1
  24.         moveq.l    #0,d0
  25.         jsr    OpenLibrary(a6)
  26.         move.l    d0,disk_font_base
  27.         beq.w    quit
  28.  
  29.         lea    dos_name,a1
  30.         moveq.l    #39,d0
  31.         jsr    OpenLibrary(a6)
  32.         move.l    d0,dos_base
  33.         beq.w    quit
  34.  
  35.         lea    graphics_name,a1
  36.         moveq.l    #39,d0
  37.         jsr    OpenLibrary(a6)
  38.         move.l    d0,graphics_base
  39.         beq.w    quit
  40.  
  41.         lea    intuition_name,a1
  42.         moveq.l    #39,d0
  43.         jsr    OpenLibrary(a6)
  44.         move.l    d0,intuition_base
  45.         beq.w    quit
  46.  
  47.         lea    req_tools_name,a1
  48.         moveq.l    #38,d0
  49.         jsr    OpenLibrary(a6)
  50.         move.l    d0,req_tools_base
  51.         beq.w    quit
  52.  
  53.         lea    low_level_name,a1
  54.         moveq.l    #0,d0
  55.         jsr    OpenLibrary(a6)
  56.         move.l    d0,low_level_base
  57.  
  58.         lea    control_pad_name,a1
  59.         moveq.l    #0,d0
  60.         jsr    OpenLibrary(a6)
  61.         move.l    d0,control_pad_base
  62.  
  63.         lea    xpk_master_name,a1
  64.         moveq.l    #0,d0
  65.         jsr    OpenLibrary(a6)
  66.         move.l    d0,xpk_master_base
  67.  
  68. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  69. ;        allocate controller port for sega if needed
  70. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  71.  
  72.         move.l    control_pad_base,d0
  73.         beq.s    no_sc_alloc
  74.  
  75.         move.l    d0,a6
  76.         move.b    #CPU_JOYPORT,d0            ;joyport only.
  77.         jsr    cpAlloc(a6)            ;allocate the port.
  78.         move.l    d0,muna
  79.  
  80.         move.b    #CPU_JOYPORT,d0
  81.         move.l    muna,a0
  82.         jsr    cpGet(a6)
  83.  
  84.         move.b    #CPU_JOYPORT,d0
  85.         move.l    muna,a0
  86.         jsr    cpGet(a6)
  87.  
  88.         move.b    #CPU_JOYPORT,d0
  89.         move.l    muna,a0
  90.         jsr    cpGet(a6)
  91.  
  92.         move.b    #CPU_JOYPORT,d0
  93.         move.l    muna,a0
  94.         jsr    cpGet(a6)
  95.  
  96.         move.b    #CPU_JOYPORT,d0
  97.         move.l    muna,a0
  98.         jsr    cpGet(a6)
  99.  
  100.         move.b    #CPU_JOYPORT,d0
  101.         move.l    muna,a0
  102.         jsr    cpGet(a6)
  103.  
  104.         move.b    #CPU_JOYPORT,d0
  105.         move.l    muna,a0
  106.         jsr    cpGet(a6)
  107.  
  108. no_sc_alloc:    
  109.  
  110.  
  111.  
  112.  
  113.  
  114. quit:        move.l    exec_base,a6
  115.         move.l    xpk_master_base,d1
  116.         beq.s    no_xpk_master            ;no xpk master library open.
  117.         move.l    d1,a1
  118.         jsr    CloseLibrary(a6)
  119.  
  120. no_xpk_master:    move.l    low_level_base,d1
  121.         beq.s    no_low_level            ;no low level library open.
  122.         move.l    d1,a1
  123.         jsr    CloseLibrary(a6)
  124.  
  125. no_low_level:    move.l    control_pad_base,d1
  126.         beq.s    no_control_pad
  127.         move.l    d1,a1
  128.         jsr    CloseLibrary(a6)
  129.  
  130. no_control_pad:    move.l    req_tools_base,d1
  131.         beq.s    no_req_tools
  132.         move.l    d1,a1
  133.         jsr    CloseLibrary(a6)
  134.  
  135. no_req_tools:    move.l    graphics_base,d1
  136.         beq.s    no_gfx_base
  137.         move.l    d1,a1
  138.         jsr    CloseLibrary(a6)
  139.  
  140. no_gfx_base:    move.l    dos_base,d1
  141.         beq.s    no_dos_base
  142.         move.l    d1,a1
  143.         jsr    CloseLibrary(a6)
  144.  
  145. no_dos_base:    move.l    disk_font_base,d1
  146.         beq.s    no_font_base
  147.         move.l    d1,a1
  148.         jsr    CloseLibrary(a6)
  149.  
  150. no_font_base:    movem.l    (SP)+,d2-d7/a2-a6        ;unstack!
  151.         moveq.l    #0,d0                ;no errors.
  152.         rts
  153.  
  154. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  155. ;        section    murrr,data
  156. ;««««««««««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  157.  
  158. intuition_name:    dc.b    "intuition.library",0
  159.         even
  160. dos_name:    dc.b    "dos.library",0
  161.         even
  162. graphics_name:    dc.b    "graphics.library",0
  163.         even
  164. disk_font_name:    dc.b    "diskfont.library",0
  165.         even
  166. low_level_name:    dc.b    "lowlevel.library",0
  167.         even
  168. control_pad_name:
  169.         dc.b    "controlpad.library",0
  170.         even
  171. req_tools_name:    dc.b    "reqtools.library",0
  172.         even
  173. xpk_master_name:dc.b    "xpkmaster.library",0
  174.         even
  175.  
  176. exec_base:    dc.l    0
  177. intuition_base:    dc.l    0
  178. graphics_base:    dc.l    0
  179. dos_base:    dc.l    0
  180. disk_font_base:    dc.l    0
  181. low_level_base:    dc.l    0
  182. control_pad_base:
  183.         dc.l    0
  184. req_tools_base:    dc.l    0
  185. xpk_master_base:dc.l    0
  186.  
  187. muna:        dc.l    0
  188.  
  189.         END
  190.